import strym
from strym import strymread
from strym import phasespace
print(strym.__version__)
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
dbcfile = '/home/ivory/VersionControl/Jmscslgroup/strym/examples/newToyotacode.dbc'
datafolder = "/home/ivory/CyverseData/JmscslgroupData/PandaData/2020_03_05/"
import glob
csvlist = glob.glob(datafolder+"*.csv")
r =strymread(csvfile=csvlist[0], dbcfile=dbcfile)
speed = r.speed()
strym.plt_ts(speed, title = "Speed [km/h] Timeseries plot")
message_subset = r.msg_subset(time=(250, r.triptime()))
r_subset = strymread(csvfile=message_subset, dbcfile=dbcfile)
speed = r_subset.speed()
strym.plt_ts(speed, title = "Speed [km/h] Timeseries plot")
speed['Message'] = speed['Message']*(5.0/18.0)
strym.plt_ts(speed, title = "Speed [m/s] Timeseries plot")
r_subsets = []
time_increment = 30
init_time = 0
triptime = r_subset.triptime()
while (init_time + time_increment) <= triptime:
msg_slice = r_subset.msg_subset(time=(init_time, init_time + time_increment))
r_new = strymread(csvfile=msg_slice, dbcfile=dbcfile)
r_subsets.append(r_new)
init_time = init_time + time_increment
for subsets in r_subsets:
accelx = subsets.accelx()
speed = subsets.speed()
# Convert Km/h to m/s
speed['Message'] = speed['Message']*(5.0/18.0)
print("\n----------------------------\n")
print("Covering trip times from {} to {}".format(subsets.start_time(), subsets.end_time()))
re_speed, re_accelx = strym.ts_sync(speed, accelx, rate="first")
ps = phasespace(dfx=re_speed, dfy=re_accelx, resample_type="first")
ps.phaseplot(title='Phase-space plot of speed-acceleration for Rav4 Data from 5th March 2020 Drive',
xlabel='speed', ylabel='acceleration')
ps.centroidplot
print("Average Centroid Distane of cluster is {}".format(ps.acd))
speedfiles = [['/home/ivory/CyverseData/JmscslgroupData/ARED/2016-07-28/data_by_test/Bag Files/test3_09-23-59/catvehicle-vel.csv'],
['/home/ivory/CyverseData/JmscslgroupData/ARED/2016-07-28/data_by_test/Bag Files/test7_11-07-25/catvehicle-vel.csv'],
['/home/ivory/CyverseData/JmscslgroupData/ARED/2016-07-28/data_by_test/Bag Files/test6_10-47-54/catvehicle-vel.csv'],
['/home/ivory/CyverseData/JmscslgroupData/ARED/2016-07-28/data_by_test/Bag Files/test8_12-09-17/catvehicle-vel.csv'],
['/home/ivory/CyverseData/JmscslgroupData/ARED/2016-07-28/data_by_test/Bag Files/test5_10-17-31/catvehicle-vel.csv'],
['/home/ivory/CyverseData/JmscslgroupData/ARED/2016-07-28/data_by_test/Bag Files/test9_12-30-55/catvehicle-vel.csv'],
['/home/ivory/CyverseData/JmscslgroupData/ARED/2016-07-28/data_by_test/Bag Files/test10_12-49-51/catvehicle-vel.csv'],
['/home/ivory/CyverseData/JmscslgroupData/ARED/2016-07-28/data_by_test/Bag Files/test4_09-41-04/catvehicle-vel.csv']]
speed28 = [None]*len(speedfiles)
for i, s in enumerate(speedfiles):
speed28[i] = pd.read_csv(s[0])
speed28[i].drop(speed28[i].columns.difference(['Time', 'LinearX']), 1, inplace=True)
speed28[i].rename(columns = {'LinearX':'Message'}, inplace = True)
fig, ax = strym.create_fig(1)
ax = ax[0]
ax.scatter(speed28[4]['Time'], speed28[4]['Message'], c=speed28[4]['Time'] , s= 8)
ax.set_title('Speed of ' + speedfiles[4][0])
ax.set_xlabel("Time")
ax.set_ylabel("Speed [m/s]")
plt.show()
accel = strym.differentiate(speed28[4])
accel_denoised = strym.denoise(accel,window_size=20 )
fig, ax = strym.create_fig(1)
ax = ax[0]
plt.rcParams["figure.figsize"] = (14,6)
ax.plot(accel['Time'], accel['Message'])
ax.plot(accel_denoised['Time'], accel_denoised['Message'])
plt.title('Acceleration')
plt.legend(["Original Acceleration (m/s^2)","Denoised Acceleration (m/s^2)" ])
speed_split, split = strym.split_ts(speed28[4], by = 30)
plt.show()
for df in split:
print("\n----------------------------\n")
print("Covering trip times from {} to {}".format(strym.dateparse(df['Time'].iloc[0]), strym.dateparse(df['Time'].iloc[-1])))
accel_split = strym.differentiate(df)
accel_split_denoised = strym.denoise(accel_split, window_size=20)
ps = phasespace(dfx=df, dfy=accel_split_denoised, resample_type="first")
ps.phaseplot(title='Phase-space plot of speed-acceleration for Ring Road Experiment (July 28, 2020)',
xlabel='speed', ylabel='acceleration')
ps.centroidplot( xlabel='Centroid Distance', ylabel='Counts')
print("Average Centroid Distane of cluster is {}".format(ps.acd))